package com.cy.member;

import java.awt.Point;
import java.util.ArrayList;

import com.cy.member.parent.ChineseChessman;
/**
 * 炮
 * @author CY
 */
public class Pao extends ChineseChessman {

	/**
	 * @param who true红色，false黑色
	 */
	public Pao(boolean who) {
		if(who) {//红车
			this.setBackground("image/红炮.GIF");
		} else {//黑车
			this.setBackground("image/黑炮.gif");
		}
		//生成棋子
		this.generateChessman(who);
	}

	/**
	 * 炮的移动策略
	 * 首先保证是直线移动。
	 * 如果垂直移动查看垂直方向上有多少个子，不算自己。如果为0或2则可以移动
	 * 水平方向同上。
	 */
	@Override
	public boolean move(Point site, ArrayList<Point> points) {
		//起点坐标
		Point origin = getChessman().getSite();
		int mark = 0;
		//垂直移动
		if(origin.x == site.x && points != null) {
			for(Point point : points) {
				if((point.y < origin.y && point.y >= site.y) || (point.y > origin.y && point.y <= site.y)){
					mark++;
				}
			}
		} else if(origin.y == site.y && points != null){//水平移动
			for(Point point : points) {
				if((point.x < origin.x && point.x >= site.x) || (point.x > origin.x && point.x <= site.x)){
					mark++;
				}
			}
		} else {
			return false;
		}
		if(mark == 0 || mark == 2) {
			getChessman().setSite(site);
			return true;
		} else {
			return false;
		}
	}
}
